home *** CD-ROM | disk | FTP | other *** search
/ Russians in Space (Special Edition) / Russians in Space - 40th Anniversary of Sputnik.iso / pc / s_space.mst < prev    next >
Text File  |  1997-02-27  |  8KB  |  284 lines

  1. '**************************************************************************
  2. '*                       CompactBook Publishing Install
  3. '*                           (Soviet Space Program)
  4. '*
  5. '*                       Copyright 1994 Roman A. Avdanin
  6. '*
  7. '**************************************************************************
  8.  
  9. '$DEFINE DEBUG  ''Define for script development/debugging
  10.  
  11. '$INCLUDE 'setupapi.inc'
  12. '$INCLUDE 'msdetect.inc'
  13.  
  14. ''Dialog ID's
  15. CONST WELCOME       = 100
  16. CONST ASKQUIT       = 200
  17. CONST DESTPATH      = 300
  18. CONST EXITFAILURE   = 400
  19. CONST EXITQUIT      = 600
  20. CONST EXITSUCCESS   = 700
  21. CONST OPTIONS       = 800
  22. CONST APPHELP       = 900
  23. CONST BADPATH       = 6400
  24. CONST MODEL         = 1200
  25. CONST LANGUAGE      = 1100
  26. CONST REBOOT        = 1300
  27. CONST RUSSHIFT      = 10     '' Shift of russian dialog from english dialog
  28.  
  29. ''Bitmap ID
  30. CONST LOGOENG = 1
  31. CONST LOGORUS = 2
  32.  
  33. GLOBAL DEST$        ''Default destination directory.
  34. GLOBAL OPTCUR$      ''Option selection from option dialog.
  35. GLOBAL SRCDIR$      ''Source directory
  36. GLOBAL WINDIR$      ''Window Directory
  37. GLOBAL RebootMsg%   ''Reboot Message
  38. GLOBAL NeedRebooting%
  39.  
  40. ''Dialog ID variables
  41.  
  42. GLOBAL DLGWELCOME%
  43. GLOBAL DLGASKQUIT%
  44. GLOBAL DLGDESTPATH%
  45. GLOBAL DLGEXITFAILURE%
  46. GLOBAL DLGEXITQUIT%
  47. GLOBAL DLGEXITSUCCESS%
  48. GLOBAL DLGOPTIONS%
  49. GLOBAL DLGAPPHELP%
  50. GLOBAL DLGBADPATH%
  51. GLOBAL DLGMODEL%
  52. GLOBAL DLGREBOOT%
  53.  
  54. '' Information about language and version of program
  55.  
  56. GLOBAL ProgLan$
  57. GLOBAL ProgMod$
  58. GLOBAL ExePath$
  59.  
  60. DECLARE SUB Install
  61. DECLARE SUB Install2
  62. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  63. DECLARE FUNCTION PostMessage LIB "user" (hwnd%, msg%, wparam%, lparam&) AS INTEGER
  64. DECLARE FUNCTION RegisterWindowMessage LIB "user" (szRebootMessage$) AS INTEGER
  65. DECLARE FUNCTION UpdateAutoExecBat LIB "setupenu.dll" (szIn$, szOut$, szDest$) AS INTEGER
  66. DECLARE FUNCTION InstallTrueTypeFont LIB "instfont.dll" (lpszPath$, lpszFileName$, lpszFontName$) AS INTEGER
  67. DECLARE FUNCTION InstallFont LIB "instfont.dll" (lpszPath$, lpszFileName$, lpszFontName$) AS INTEGER
  68.  
  69. INIT:
  70.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  71.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  72.  
  73.     SetBitmap CUIDLL$, LOGOENG
  74.     SetTitle "Soviet Space Program"
  75.  
  76.     SRCDIR$ = GetSymbolValue("STF_SRCDIR")
  77.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  78.     IF szInf$ = "" THEN
  79.     szInf$ = GetSymbolValue("STF_CWDDIR") + "space.INF"
  80.     END IF
  81.     ReadInfFile szInf$
  82.  
  83.     OPTCUR$ = "1"
  84.     DEST$ = GetWindowsDir()
  85.  
  86.     WINDIR$ = GetWindowsDir()
  87.     WINDIR$ = WINDIR$ + "SYSTEM\"
  88.  
  89.     SetAbout "Soviet Space Program", "Copyright (C) 1995 CompactBook Publishing"
  90.  
  91.     DLGWELCOME%      = WELCOME
  92.     DLGASKQUIT%      = ASKQUIT
  93.     DLGDESTPATH%     = DESTPATH
  94.     DLGEXITFAILURE%  = EXITFAILURE
  95.     DLGEXITQUIT%     = EXITQUIT
  96.     DLGEXITSUCCESS%  = EXITSUCCESS
  97.     DLGOPTIONS%      = OPTIONS
  98.     DLGAPPHELP%      = APPHELP
  99.     DLGBADPATH%      = BADPATH
  100.     DLGMODEL%        = MODEL
  101.     DLGREBOOT%       = REBOOT
  102.  
  103.     RebootMsg% = RegisterWindowMessage ("BolshInst")
  104.     NeedRebooting% = 0
  105.  
  106. rem    i% = InstallTrueTypeFont ("", "spc", "Special (True Type)")
  107. rem    IF (i% = 0) THEN
  108. rem    i% = DoMsgBox("Can't install the fonts - try to do this manualy or call product support at (095) 121 - 4133", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  109. rem    END IF
  110.  
  111. LANGUAGE:
  112.     OPTCUR$ = "1"
  113.     SetSymbolValue "RadioDefault", OPTCUR$
  114.     ProgLan$ = OPTCUR$
  115.  
  116. WELCOME:
  117.     sz$ = UIStartDlg(CUIDLL$, DLGWELCOME%, "FInfoDlgProc", DLGAPPHELP%, HELPPROC$)
  118.     IF sz$ = "CONTINUE" THEN
  119.     UIPop 1
  120.     ELSE
  121.     GOSUB ASKQUIT
  122.     GOTO WELCOME
  123.     END IF
  124.  
  125. OPTION:
  126.     OPTCUR$ = "1"
  127.     SetSymbolValue "RadioDefault", OPTCUR$
  128. OPTL1:
  129.     sz$ = UIStartDlg(CUIDLL$, DLGOPTIONS%, "FRadioDlgProc", DLGAPPHELP%, HELPPROC$)
  130.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  131.  
  132.     IF sz$ = "CONTINUE" THEN
  133.     UIPop(1)
  134.     ELSEIF sz$ = "REACTIVATE" THEN
  135.     GOTO OPTL1
  136.     ELSE
  137.     GOSUB ASKQUIT
  138.     GOTO OPTION
  139.     END IF
  140.  
  141.     IF OPTCUR$ = "1" THEN
  142.     GOTO ICONONLY
  143.     END IF
  144.  
  145.  
  146.  
  147.     Install
  148.     rem NeedRebooting% = 1
  149.  
  150.     IF OPTCUR$ = "3" THEN
  151.     GOTO QUIT
  152.     END IF
  153.  
  154. ICONONLY:
  155.  
  156. Install2
  157.  
  158. QUIT:
  159.     ON ERROR GOTO ERRQUIT
  160.  
  161.     IF ERR = 0 THEN
  162.     dlg% = DLGEXITSUCCESS%
  163.     ELSEIF ERR = STFQUIT THEN
  164.     dlg% = DLGEXITQUIT%
  165.     ELSE
  166.     dlg% = DLGEXITFAILURE%
  167.     END IF
  168. QUITL1:
  169.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  170.     IF sz$ = "REACTIVATE" THEN
  171.     GOTO QUITL1
  172.     END IF
  173.     UIPop 1
  174.     IF NeedRebooting% = 1 THEN
  175.     sz$ = UIStartDlg(CUIDLL$, DLGREBOOT%, "FInfoDlgProc", DLGAPPHELP%, HELPPROC$)
  176.         IF sz$ = "CONTINUE" THEN
  177.         i% = PostMessage (65535, RebootMsg%, 0, 0)
  178.         END IF
  179.         UIPop 1
  180.     END IF
  181.  
  182.     END
  183.  
  184. ERRQUIT:
  185.     i% = DoMsgBox("Setup sources were corrupted, call product support at (095)121-4133", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  186.     END
  187.  
  188.  
  189. BADPATH:
  190.     sz$ = UIStartDlg(CUIDLL$, DLGBADPATH%, "FInfo0DlgProc", 0, "")
  191.     IF sz$ = "REACTIVATE" THEN
  192.     GOTO BADPATH
  193.     END IF
  194.     UIPop 1
  195.     RETURN
  196.  
  197.  
  198. ASKQUIT:
  199.     sz$ = UIStartDlg(CUIDLL$, DLGASKQUIT%, "FQuitDlgProc", 0, "")
  200.  
  201.     IF sz$ = "EXIT" THEN
  202.     UIPopAll
  203.     ERROR STFQUIT
  204.     ELSEIF sz$ = "REACTIVATE" THEN
  205.     GOTO ASKQUIT
  206.     ELSE
  207.     UIPop 1
  208.     END IF
  209.     RETURN
  210.  
  211. '**
  212. '** Purpose:
  213. '**     Builds the copy list and performs all installation operations.
  214. '** Arguments:
  215. '**     none.
  216. '** Returns:
  217. '**     none.
  218. '*************************************************************************
  219. SUB Install STATIC
  220.     rem Update AUTOEXEC.BAT
  221.     rem -------------------
  222.     rem          i%=UpdateAutoExecBat("C:\AUTOEXEC.BAT", "C:\AUTOEXEC.QTW", DEST$)
  223.     rem          CopyFile "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.BAK", cmoOverwrite, 0
  224.     rem          CopyFile "C:\AUTOEXEC.QTW", "C:\AUTOEXEC.BAT", cmoOverwrite, 0
  225.     rem          RemoveFile "C:\AUTOEXEC.QTW", cmoForce
  226.     rem Update WIN.INI and SYSTEM.INI
  227.     rem -----------------------------
  228.            CreateIniKeyValue "WIN.INI", "Extensions", "mov", "player.exe" + " ^.mov", cmoNone
  229.            CreateIniKeyValue "WIN.INI", "Extensions", "pic", "viewer.exe" + " ^.pic", cmoNone
  230.            CreateIniKeyValue "WIN.INI", "MCI Extensions", "mov", "QTWVideo", cmoNone
  231.            CreateIniKeyValue "WIN.INI", "MCI Extensions", "pic", "QTWVideo", cmoNone
  232.            CreateIniKeyValue "WIN.INI", "MCI Extensions", "jpg", "QTWVideo", cmoNone
  233.    rem        i%=WritePrivateProfileString("MCI", "QTWVideo", MakePath(DEST$, "mciqtw.drv"), "SYSTEM.INI")
  234.  
  235. rem    CreateDir DEST$, cmoNone
  236.  
  237.     AddSectionFilesToCopyList "Options", SRCDIR$, WINDIR$
  238.     CopyFilesInCopyList
  239.  
  240.      WINDIR$ = GetWindowsDir()
  241.  
  242.     AddSectionFilesToCopyList "Winexe", SRCDIR$, WINDIR$
  243.     CopyFilesInCopyList
  244.  
  245.  
  246.     CreateProgmanGroup "QuickTime for Windows", "", cmoNone
  247.     ShowProgmanGroup  "QuickTime for Windows", 1, cmoNone
  248.     CreateProgmanItem "QuickTime for Windows", "Movie Player", "Player.exe", "", cmoOverwrite
  249.     CreateProgmanItem "QuickTime for Windows", "Picture Viewer","Viewer.exe", "", cmoOverwrite
  250.     CreateProgmanItem "QuickTime for Windows", "Readme", "readme.exe", "", cmoOverwrite
  251. END SUB
  252.  
  253. SUB Install2 STATIC
  254.     CreateProgmanGroup "CompactBook", "", cmoVital
  255.     ShowProgmanGroup  "CompactBook", 1, cmoVital
  256.     IF ProgLan$ = "1" THEN
  257.         CreateProgmanItem "CompactBook", "Soviet Space Program", MakePath(SrcDir$, "SPACE.EXE"), MakePath(SrcDir$,"SPACE.ICO"), cmoOverwrite
  258.     ELSE
  259.         CreateProgmanItem "CompactBook", "Russians in Space", MakePath(SrcDir$, "SPACE.EXE"), MakePath(SrcDir$,"SPACE.ICO"), cmoOverwrite
  260.     END IF
  261. END SUB
  262.  
  263. '**
  264. '** Purpose:
  265. '**     Appends a file name to the end of a directory path,
  266. '**     inserting a backslash character as needed.
  267. '** Arguments:
  268. '**     szDir$  - full directory path (with optional ending "\")
  269. '**     szFile$ - filename to append to directory
  270. '** Returns:
  271. '**     Resulting fully qualified path name.
  272. '*************************************************************************
  273.  
  274. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  275.     IF szDir$ = "" THEN
  276.     MakePath = szFile$
  277.     ELSEIF szFile$ = "" THEN
  278.     MakePath = szDir$
  279.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  280.     MakePath = szDir$ + szFile$
  281.     ELSE
  282.     MakePath = szDir$ + "\" + szFile$
  283.     END IF
  284. END FUNCTION